// map.js
// 导入时注意路径
import qqmapsdk from '../../../utils/qqmapsdk'

Page({
  data: {
    // 经度
    longitude: 116.343847,
    // 维度
    latitude: 40.060539,
    // 缩放级别
    scale: 16,
    // 标记点(数组)
    markers: [
      {
        id: 1,
        latitude: 40.060539,
        longitude: 116.343847,
        width: 25,
        height: 40,
      },
      {
        id: 2,
        latitude: 40.061539,
        longitude: 116.341847,
        iconPath: '/static/images/marker.png',
        width: 40,
        height: 40,
      },
    ],
    // 路线规划
    polyline: [],
  },
  // 页面加载
  onLoad(query) {
    // 根据报修 id 获取报修详情
    this.getDetail(query.id)
    // 获取路线规划
    this.getPolyLine()
  },
  getPolyLine() {
    // 路线规划
    qqmapsdk.direction({
      mode: 'bicycling', // 骑行
      from: { latitude: 40.061539, longitude: 116.341847 }, // 出发点
      to: { latitude: 40.060539, longitude: 116.343847 }, // 终点
      success: (res) => {
        // console.log('🟢 res', res.result.routes[0].polyline)
        // 提取压缩的路径坐标，按官方文档解压坐标
        const coors = res.result.routes[0].polyline
        for (let i = 2; i < coors.length; i++) {
          coors[i] = Number(coors[i - 2]) + Number(coors[i]) / 1000000
        }
        const points = []
        //将解压后的坐标放入点串数组pl中
        for (let i = 0; i < coors.length; i += 2) {
          points.push({ latitude: coors[i], longitude: coors[i + 1] })
        }
        // console.log('🟢 coors', coors)
        // console.log('🟢 points', points)
        this.setData({
          polyline: [
            {
              points,
              color: '#00d26a',
              width: 4,
            },
          ],
        })
      },
    })
  },
  // 获取报修详情
  async getDetail(id) {
    const res = await wx.http.get(`/repair/${id}`)
    this.setData({
      detail: res.data,
    })
  },
  // 取消报修
  async cancelRepair(ev) {
    // 二次确认
    const { confirm } = await wx.showModal({
      content: '确定取消报修吗？',
      cancelText: '点错了',
      cancelColor: '#999',
    })
    // 确认取消
    if (confirm) {
      // 调用取消报修的接口
      await wx.http.put(`/cancel/repaire/${ev.mark.id}`)
      // 跳转到报修列表页面
      wx.redirectTo({
        url: '/pkg_repair/pages/list/index',
      })
    }
  },
})
